Bask

Shanghai Based Android Engineer currently develop Payment systems at Ctrip

👨‍🔧‍

Java static VS Kotlin companion object

By Bask on null

This post is over a year old. Some of the content may be out of date.

Kotlin作为要替代Java开发Android的官方语言,要做的就是Java可以完成的事Kotlin也可以完成。其中Java有一个关键字--static,用于修饰静态变量、方法及类。所以Kotlin也对比Java设计了companion object伴生对象。

伴生对象从字面上就很好理解,伴随着类的生成与摧毁而生存。如果类初始化,那么companion object也会初始化。那么静态关键字static呢?只要程序在运行,static修饰的变量、方法、类就会被分配在内存中,而随着程序停止运行,这些内存才会释放。可以看到,本质上没有任何区别的。